Methods and systems for determining a cyclical fleet plan satisfying a recurring set of coverage requirements

ABSTRACT

Methods and systems for determining a cyclical pattern of trajectories for a fleet of vehicles are provided. In one example, a method comprises receiving a sequence of coverage requirements for a region and an associated period of time. For each of one or more phases of the period of time, possible routes that a vehicle located at one or more respective landmarks at a beginning of the phase could follow to reach one or more additional landmarks by an end of the phase are determined. Further, a cyclical pattern of trajectories for vehicles of a fleet of vehicles that minimizes a difference between a distribution of the fleet at a beginning of the period of time and a distribution of the fleet at an end of the period of time is determined.

BACKGROUND

Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.

Computing devices such as personal computers, laptop computers, tablet computers, cellular phones, and countless types of Internet-capable devices are increasingly prevalent in numerous aspects of modern life. As such, the demand for data connectivity via the Internet, cellular data networks, and other such networks, is growing. However, there are many areas of the world where data connectivity is still unavailable, or if available, is unreliable and/or costly. Accordingly, additional network infrastructure is desirable.

SUMMARY

In one example, a method is provided that comprises receiving a sequence of coverage requirements for a region and an associated period of time. The region is characterized by a plurality of landmarks and the period of time is divided into a plurality of phases. An individual coverage requirement is indicative of a desired number of vehicles for one or more of the plurality of landmarks at an end of a given phase. The method further comprises determining, by a processor, for each of one or more phases possible routes that a vehicle located at one or more respective landmarks at a beginning of the phase could follow to reach one or more additional landmarks of the plurality of landmarks by an end of the phase. Additionally, the method comprises the processor determining a cyclical pattern of trajectories for vehicles of a fleet of vehicles that minimizes a difference between a distribution of vehicles in the fleet of vehicles at a beginning of the period of time and a distribution of vehicles in the fleet of vehicles at an end of the period of time. According to the method, the processor determines the cyclical pattern of trajectories based on the sequence of coverage requirements and the determined possible routes.

In another example, a computer-readable storage medium having stored therein instructions, that when executed by a computing device, cause the computing device to perform functions is provided. The functions comprise receiving a sequence of coverage requirements for a region and an associated period of time. The region is characterized by a plurality of landmarks and the period of time is divided into a plurality of phases. An individual coverage requirement is indicative of a desired number of vehicles for one or more of the plurality of landmarks at an end of a given phase. The functions also comprise determining, for each of one or more phases, possible routes that a vehicle located at one or more respective landmarks at a beginning of the phase could follow to reach one or more additional landmarks of the plurality of landmarks by an end of the phase. Additionally, the functions comprise determining, based on the sequence of coverage requirements and the determined possible routes, a cyclical pattern of trajectories for vehicles of a fleet of vehicles that minimizes a difference between a distribution of vehicles in the fleet of vehicles at a beginning of the period of time and a distribution of vehicles in the fleet of vehicles at an end of the period of time.

In still another example, a system is provided that comprises at least one processor, and data storage comprising program instructions executable by the at least one processor to cause the system to perform functions. The functions comprise receiving a sequence of coverage requirements for a region and an associated period of time. The region is characterized by a plurality of landmarks and the period of time is divided into a plurality of phases. An individual coverage requirement is indicative of a desired number of vehicles for one or more of the plurality of landmarks at an end of a given phase. The functions also comprise determining, for each of one or more phases, possible routes that a vehicle located at one or more respective landmarks at a beginning of the phase could follow to reach one or more additional landmarks of the plurality of landmarks by an end of the phase. Additionally, the functions comprise determining, based on the sequence of coverage requirements and the determined possible routes, a cyclical pattern of trajectories for vehicles of a fleet of vehicles that minimizes a difference between a distribution of vehicles in the fleet of vehicles at a beginning of the period of time and a distribution of vehicles in the fleet of vehicles at an end of the period of time.

These as well as other aspects, advantages, and alternatives, will become apparent to those of ordinary skill in the art by reading the following detailed description, with reference where appropriate to the accompanying figures.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a block diagram illustrating an example balloon network.

FIG. 2 is a block diagram illustrating an example balloon-network control system.

FIG. 3 shows a high-altitude balloon according to an example embodiment.

FIG. 4 illustrates example possible routes for a balloon that is traveling from a landmark A and a balloon that is traveling from a landmark B.

FIG. 5 illustrates an example cost value map where location A is a starting location of a balloon, location B is a desired final location, and example cost values are assigned to cells surrounding location B.

FIG. 6 illustrates an area divided into cells, and for a given cell labeled X, example wind vectors A₁-A₅ that are determined based on wind conditions at five different altitude levels.

FIGS. 7A and 7B illustrate examples of determining landmarks from which a balloon could reach a landmark E.

FIG. 8 illustrates an example graph of possible routes between a plurality of landmarks in accordance with an example embodiment.

FIG. 9 illustrates an example period of time for which a cyclical pattern of trajectories may be determined.

FIG. 10 is an example block diagram of a method to determine a cyclical pattern of trajectories for a fleet of vehicles, in accordance with at least some embodiments described herein.

DETAILED DESCRIPTION

The following detailed description describes various features and functions of the disclosed systems and methods with reference to the accompanying figures. In the figures, similar symbols identify similar components, unless context dictates otherwise. The illustrative system and method embodiments described herein are not meant to be limiting. It may be readily understood that certain aspects of the disclosed systems and methods can be arranged and combined in a wide variety of different configurations, all of which are contemplated herein.

Examples herein may be configured to provide control of vehicles within a fleet of vehicles. The vehicles may be any number of types of vehicles including, for example, autonomous or semi-autonomous vehicles, such as aerial vehicles, boats, underwater vehicles, satellites, aerostats, etc. for mapping/surveying, sensing, providing connectivity, etc. In other examples, methods described herein may be used to control or dispatch autonomous cars to maintain a well-distributed fleet of autonomous taxis in a city to support rapid dispatch of taxis. The vehicles may be any type of mobile object, element, platform, etc.

In still further examples, vehicles may be or include vehicles of a data network that includes a plurality of balloons, for example, configured as a mesh network formed by high-altitude balloons deployed in the stratosphere. Since winds in the stratosphere may affect locations of the balloons in a differential manner, each balloon in an example network may be configured to change its horizontal position by adjusting its vertical position (i.e., altitude). For example, by adjusting its altitude, a balloon may be able find winds that will carry the balloon horizontally (e.g., latitudinally and/or longitudinally) to a desired horizontal location. In other examples, each balloon may be configured to change its horizontal position using propellers or other mechanisms to generate horizontal thrust rather than or in addition to adjusting its horizontal position by adjusting its vertical position.

Within examples, methods and systems are described with respect to elements of a fleet of vehicles being balloons in a fleet of balloons arranged as a data network. However, as mentioned above, methods and systems herein may be applicable to other types of vehicles of a fleet of vehicles, and thus, the examples described are not limiting.

When managing a fleet of autonomous balloons, a fleet administrator or computer may determine a sequence of coverage requirements for the fleet. The sequence of coverage requirements may specify desired amounts of balloon coverage for different parts of the world. For instance, the desired amounts of balloon coverage may include providing at least ten balloons in a first area, at least five balloons in a second area, and at least eighteen balloons in a third area at a first instance in time and then, at a second instance in time, providing at least five balloons in the first area, ten balloons in the second area, and twenty balloons in the third area. In one example, in order for a fleet of balloons to satisfy the coverage requirements, a fleet plan that stages balloons in particular places ahead of deadlines such that the balloons will be able to arrive at a desired location on time may be required. Therefore, to control the fleet of balloons, a simultaneous plan of trajectory for many balloons at many different starting locations is needed, and each balloon may take a different path.

In many cases, the sequence of coverage requirements recurs on a regular time frame. Perhaps the coverage requirements are constant over time: the same coverage requirement that exists one hour from now may also exist two hours from now, three hours from now, etc. In other cases, the coverage requirements may recur at a fixed periodicity: hour-by-hour, day-by-day, week-by-week, month-by-month, etc.

When the coverage requirements recur regularly, and when the travel options available to each balloon in the fleet remain relatively stable over the course of many recurrences of the coverage requirements, it may be convenient to identify a cyclical pattern of trajectories on the same periodicity as the recurrence of the coverage requirements. Once such a cyclical pattern has been entered by vehicles of the fleet, the fleet should be able to maintain the cyclical pattern indefinitely with minimal or no additional planning required.

According to an example method, a sequence of coverage requirements may be received. The coverage requirements may be goal distributions for a fleet of balloons that are defined with respect to various landmarks of a region of interest. For example, the region of interest may include a small region of the Earth or possibly the entire Earth, and the landmarks may be individual locations or subregions within the region of interest. The coverage requirements may specify a desired number of balloons, or goal, for each landmark at various times within a planning period of time.

The period of time may also be divided into a plurality of phases. Within each phase, a summary of which landmarks are reachable by a balloon from which other landmarks may be determined based on predicted wind conditions for the region of interest. For example, for a first phase and a first respective landmark, possible routes that a vehicle starting at the first respective landmark at the beginning of the phase could follow to reach one or more additional landmarks of the plurality of landmarks by an end of the phase may be determined. The same determination may also be made for each other landmark of the plurality of landmarks and each other phase.

Given the summary of which landmarks are reachable from other landmarks during one or more phases as well as the goal number of balloons for one or more landmarks at the end of the one or more phases, a cyclical pattern of trajectories may be determined. In one example, the cyclical pattern of trajectories may be a pattern of trajectories that constrains a distribution of balloons of the fleet at a beginning of the period of time to be equal to a distribution of balloons of the fleet at an end of the period of time. In another example, the cyclical pattern of trajectories may be a pattern of trajectories that minimizes a difference between the distribution of balloons of the fleet at the beginning of the period of time and the distribution of balloons of the fleet at the end of the period of time. Additionally, the cyclical pattern of trajectories may indicate which route of the determined possible routes that a given vehicle starting an individual landmark of the plurality of landmarks should follow during a given phase.

In some instances, a cyclical pattern of trajectories for the fleet that satisfies the sequence of coverage requirements may be determined by solving an optimization problem. For instance, trajectories that minimize the number of unsatisfied goals as well as a discrepancy between a distribution of the fleet at the beginning of the period of time and a distribution of the fleet at an end of the period of time may be found by minimizing a linear objective function. Other optimization methods that directly or approximately solve for the trajectories of the fleet may also be used, and the examples are not meant to be limiting. Thus, in some examples, based on possible routes between landmarks and a sequence of coverage requirements, a cyclical pattern of trajectories for a fleet that maximizes a likelihood of satisfying the sequence of coverage requirements may be determined.

Referring now to the Figures, FIG. 1 is a block diagram illustrating an example balloon network 100. As shown, the balloon network 100 includes balloons 102A to 102F, which are configured to communicate with one another via free-space optical links 104 and/or RF links 108. Configured as such, balloons 102A to 102F may collectively function as a mesh network for packet-data communications. Further, at least some of balloons 102A and 102B may be configured for RF communications with ground-based stations 106 via respective RF links 108. Yet further, some balloons, such as balloon 102F, may be configured to communicate via optical link 110 with ground-based station 112.

In an exemplary embodiment, balloons 102A to 102F are high-altitude balloons, which are deployed in the stratosphere. At moderate latitudes, the stratosphere includes altitudes between approximately 10 kilometers (km) and 50 km altitude above the surface. At the poles, the stratosphere starts at an altitude of approximately 8 km. In an exemplary embodiment, high-altitude balloons may be generally configured to operate in an altitude range within the stratosphere that has a wide range of wind speeds. For instance, between 17 km and 20 km altitude above the surface, the average wind speed may be between about 30 mph to about 35 mph, while the max wind speed may be up to 200 mph. As another example, at about 26 km altitude above the surface, the average wind speed may be between about 60 mph to about 65 mph, while the max wind speed may exceed 300 mph.

More specifically, in a high-altitude-balloon network, balloons 102A to 102F may generally be configured to operate at altitudes between 18 km and 25 km (although other altitudes are possible). At such altitudes, the winds may vary with latitude and by season, and the variations can be modeled in a reasonably accurate manner. Additionally, altitudes above 18 km are typically above the maximum flight level designated for commercial air traffic. Therefore, interference with commercial flights is not a concern when balloons are deployed between 18 km and 25 km.

To transmit data to another balloon, a given balloon 102A to 102F may be configured to transmit an optical signal via an optical link 104. In an exemplary embodiment, a given balloon 102A to 102F may use one or more high-power light-emitting diodes (LEDs) to transmit an optical signal. Alternatively, some or all of balloons 102A to 102F may include laser systems for free-space optical communications over optical links 104. Other types of free-space optical communication are possible. Further, in order to receive an optical signal from another balloon via an optical link 104, a given balloon 102A to 102F may include one or more optical receivers.

In a further aspect, balloons 102A to 102F may utilize one or more of various different RF air-interface protocols for communication with ground-based stations 106 via respective RF links 108. For instance, some or all of balloons 102A to 102F may be configured to communicate with ground-based station 106 using protocols described in IEEE 802.11 (including any of the IEEE 802.11 revisions), various cellular protocols such as GSM, CDMA, UMTS, EV-DO, WiMAX, and/or LTE, and/or one or more propriety protocols developed for balloon-ground RF communication, among other possibilities.

In a further aspect in balloon network 100, balloon 102F is configured as a downlink balloon to provide a high-capacity air-ground link. Like other balloons in an exemplary network, a downlink balloon 102F may be operable for optical communication with other balloons via optical links 104. However, a downlink balloon 102F may also be configured for free-space optical communication with a ground-based station 112 via an optical link 110. Optical link 110 may therefore serve as a high-capacity link (as compared to an RF link 108) between the balloon network 100 and ground-based station 112.

Note that in some implementations, a downlink balloon 102F may additionally be operable for RF communication with ground-based station 106. In other cases, a downlink balloon 102F may only use an optical link for balloon-to-ground communications. Further, while the arrangement shown in FIG. 1 includes just one downlink balloon 102F, an exemplary balloon network can also include multiple downlink balloons. On the other hand, a balloon network can also be implemented without any downlink balloons.

In other implementations, a downlink balloon may be equipped with a specialized, high-bandwidth RF communication system for balloon-to-ground communications, instead of, or in addition to, a free-space optical communication system. The high-bandwidth RF communication system may take the form of an ultra-wideband system, which may provide an RF link with substantially the same capacity as one of the optical links 104.

Ground-based stations, such as ground-based station 106 and/or 112, may include components such as transceivers, transmitters, and/or receivers for communication via RF links and/or optical links with a balloon network. Further, a ground-based station may use various air-interface protocols in order to communicate with a balloon 102A to 102F over an RF link. As such, a ground-based station 106 may be configured as an access point via which various devices can connect to balloon network 100.

In a further aspect, some or all balloons 102A to 102F could be configured to establish a communication link with space-based satellites in addition to, or as an alternative to, a ground-based communication link. In some embodiments, a balloon may communicate with a satellite via an optical link.

Further, some ground-based stations, such as ground-based station 106, may be configured as gateways between balloon network 100 and one or more other networks. Such a ground-based station 106 may thus serve as an interface between the balloon network and the Internet, a cellular service provider's network, and/or other types of networks.

As noted, balloons 102A to 102F may collectively function as a mesh network. More specifically, since balloons 102A to 102F may communicate with one another using free-space optical links, the balloons may collectively function as a free-space optical mesh network.

In a mesh-network configuration, each balloon 102A to 102F may function as a node of the mesh network, which is operable to receive data directed to the balloon and to route data to other balloons. As such, data may be routed from a source balloon to a destination balloon by determining an appropriate sequence of optical links between the source balloon and the destination balloon. These optical links may be collectively referred to as a “lightpath” for the connection between the source and destination balloons. Further, each of the optical links may be referred to as a “hop” on the lightpath.

To operate as a mesh network, balloons 102A to 102F may employ various routing techniques and self-healing algorithms. In some embodiments, a balloon network 100 may employ adaptive or dynamic routing, where a lightpath between a source and destination balloon is determined and set-up when the connection is needed, and released at a later time. Further, when adaptive routing is used, the lightpath may be determined dynamically depending upon the current state, past state, and/or predicted state of the balloon network.

In addition, the network topology may change as the balloons 102A to 102F move relative to one another and/or relative to the ground. Accordingly, an exemplary balloon network 100 may apply a mesh protocol to update the state of the network as the topology of the network changes. For example, to address the mobility of the balloons 102A to 102F, balloon network 100 may employ and/or adapt various techniques that are employed in mobile ad hoc networks (MANETs). Other examples are possible as well.

In some implementations, a balloon network 100 may be configured as a transparent mesh network. For instance, the balloons may include components for physical switching that is entirely optical, without any electrical components involved in the physical routing of optical signals. Thus, in a transparent configuration with optical switching, signals travel through a multi-hop lightpath that is entirely optical.

In other implementations, the balloon network 100 may implement a free-space optical mesh network that is opaque. In an opaque configuration, some or all balloons 102A to 102F may implement optical-electrical-optical (OEO) switching. For example, some or all balloons may include optical cross-connects (OXCs) for OEO conversion of optical signals. Other opaque configurations are also possible.

In a further aspect, balloons in an exemplary balloon network 100 may implement wavelength division multiplexing (WDM), which may help to increase link capacity. When WDM is implemented with transparent switching, physical lightpaths through the balloon network may be subject to the “wavelength continuity constraint.” More specifically, because the switching in a transparent network is entirely optical, the same wavelength can be assigned for all optical links on a given lightpath.

An opaque configuration, on the other hand, may avoid the wavelength continuity constraint. In particular, balloons in an opaque balloon network may include the OEO switching systems operable for wavelength conversion. As a result, balloons can convert the wavelength of an optical signal at each hop along a lightpath.

Further, various routing algorithms may be employed in an opaque configuration. For example, to determine a primary lightpath and/or one or more diverse backup lightpaths for a given connection, exemplary balloons may apply or consider shortest-path routing techniques such as Dijkstra's algorithm and k-shortest path, and/or edge and node-diverse or disjoint routing such as Suurballe's algorithm, among others. Additionally or alternatively, techniques for maintaining a particular quality of service (QoS) may be employed when determining a lightpath. Other techniques are also possible.

In some examples, a balloon network 100 may have a non-uniform topology. For instance, exemplary embodiments may involve topologies where balloons are distributed more or less densely in certain areas, for various reasons. As an example, to help meet the higher bandwidth demands that are typical in urban areas, balloons may be clustered more densely over urban areas. For similar reasons, the distribution of balloons may be more dense over land than over large bodies of water. Many other examples of non-uniform topologies are possible.

FIG. 2 is a block diagram illustrating an example balloon-network control system. In particular, FIG. 2 shows a distributed control system, which includes a central control system 200 and a number of regional control-systems 202A to 202C. Such a control system may be configured to coordinate certain functionality for balloon network 204, and as such, may be configured to control and/or coordinate certain functions for balloons 206A to 206I.

In the illustrated embodiment, central control system 200 may be configured to communicate with balloons 206A to 206I via a number of regional control systems 202A to 202C. These regional control systems 202A to 202C may be configured to receive communications and/or aggregate data from balloons in the respective geographic areas that the balloons cover, and to relay the communications and/or data to central control system 200. Further, regional control systems 202A to 202C may be configured to route communications from central control system 200 to the balloons in their respective geographic areas. For instance, as shown in FIG. 2, regional control system 202A may relay communications and/or data between balloons 206A to 206C and central control system 200, regional control system 202B may relay communications and/or data between balloons 206D to 206F and central control system 200, and regional control system 202C may relay communications and/or data between balloons 206G to 206I and central control system 200.

In order to facilitate communications between the central control system 200 and balloons 206A to 206I, certain balloons may be configured as downlink balloons, which are operable to communicate with regional control systems 202A to 202C. Accordingly, each regional control system 202A to 202C may be configured to communicate with the downlink balloon or balloons in the respective geographic area it covers. For example, in the illustrated embodiment, balloons 204A, 204D, and 204H are configured as downlink balloons. As such, regional control systems 202A to 202C may respectively communicate with balloons 204A, 204D, and 204H via optical links 206, 208, and 210, respectively.

In a centralized control arrangement, such as that shown in FIG. 2, the central control system 200 (and possibly regional control systems 202A to 202C as well) may coordinate certain mesh-networking functions for balloon network 204. For example, balloons 206A to 206I may send the central control system 200 certain state information, which the central control system 200 may utilize to determine the state of balloon network 204. The state information from a given balloon may include location data, optical-link information (e.g., the identity of other balloons with which the balloon has established an optical link, the bandwidth of the link, wavelength usage and/or availability on a link, etc.), wind data collected by the balloon, and/or other types of information. Accordingly, the central control system 200 may aggregate state information from some or all of the balloons 206A to 206I in order to determine an overall state of the network.

The overall state of the network may then be used to coordinate and/or facilitate certain mesh-networking functions such as determining lightpaths for connections. For example, the central control system 200 may determine a current topology based on the aggregate state information from some or all of the balloons 206A to 206I. The topology may provide a picture of the current optical links that are available in the balloon network and/or the wavelength availability on the links. This topology may then be sent to some or all of the balloons so that a routing technique may be employed to select appropriate lightpaths (and possibly backup lightpaths) for communications through the balloon network 204.

In some embodiments, control and coordination of a balloon network may be shared by a ground-based control system and a balloon network to varying degrees, depending upon the implementation. In fact, in some embodiments, there may be no ground-based control systems. In such an embodiment, all network control and coordination functions may be implemented by the balloon network itself. For example, certain balloons may be configured to provide the same or similar functions as central control system 200 and/or regional control systems 202A to 202C. Other examples are also possible.

Furthermore, control and/or coordination of a balloon network may be de-centralized. For example, each balloon may relay state information to, and receive state information from, some or all nearby balloons. Further, each balloon may relay state information that it receives from a nearby balloon to some or all nearby balloons. When all balloons do so, each balloon may be able to individually determine the state of the network. Alternatively, certain balloons may be designated to aggregate state information for a given portion of the network. These balloons may then coordinate with one another to determine the overall state of the network.

Various types of balloon systems may be incorporated in an exemplary balloon network. As noted above, an exemplary embodiment may utilize high-altitude balloons, which typically operate in an altitude range between 18 km and 25 km. FIG. 3 shows a high-altitude balloon 300, according to an exemplary embodiment. As shown, the balloon 300 includes an envelope 302, a skirt 304, a payload 306, and a cut-down system 308 that is attached between the balloon 300 and payload 306.

The envelope 302 and skirt 304 may take various forms, for instance, the envelope 302 and/or skirt 304 may be made of metalized Mylar or BoPet. Alternatively or additionally, some or all of the envelope 302 and/or skirt 304 may be constructed from a highly-flexible latex material or a rubber material such as chloroprene. Further, the shape and size of the envelope 302 and skirt 304 may vary depending upon the particular implementation. Additionally, the envelope 302 may be filled with various different types of gases, such as helium and/or hydrogen.

The payload 306 of balloon 300 may include a processor 312 and on-board data storage, such as memory 314. The memory 314 may take the form of or include a non-transitory computer-readable medium. The non-transitory computer-readable medium may have instructions stored thereon, which can be accessed and executed by the processor 312 in order to carry out the balloon functions described herein.

The payload 306 of balloon 300 may also include various other types of equipment and systems to provide a number of different functions. For example, payload 306 may include optical communication system 316, which may transmit optical signals via an ultra-bright LED system 320, and which may receive optical signals via an optical-communication receiver 322 (e.g., a photo-diode receiver system). Further, payload 306 may include an RF communication system 318, which may transmit and/or receive RF communications via an antenna system 340. The payload may further include a positioning system 324 that can include a GPS or other location-based sensors.

The payload 306 may also include a power supply 326 to supply power to the various components of balloon 300. The power supply 326 may include or take the form of a rechargeable battery. In addition, the balloon 300 may include a solar power generation system 327. The solar power generation system 327 may include solar panels and could be used to generate power that charges and/or is distributed by the power supply 326.

Further, payload 306 may include various types of other systems 328 and sensors 334. For example, payload 306 may include one or more video and/or still cameras, a GPS system, various motion sensors (e.g., accelerometers, gyroscopes, and/or compasses), and/or various sensors for capturing environmental data. Further, some or all of the components within payload 306 may be implemented in a radiosonde, which may be operable to measure, e.g., pressure, altitude, geographical position (latitude and longitude), temperature, relative humidity, and/or wind speed and/or direction, among other information.

As noted, balloon 300 includes an ultra-bright LED system 320 for free-space optical communication with other balloons. As such, optical communication system 316 may be configured to transmit a free-space optical signal by modulating the ultra-bright LED system 320. The optical communication system 316 may be implemented with mechanical systems and/or with hardware, firmware, and/or software.

In a further aspect, balloon 300 may be configured for altitude control. For instance, balloon 300 may include a variable buoyancy system, which is configured to change the altitude of the balloon 300 by adjusting the volume and/or density of the gas in the balloon 300. A variable buoyancy system may take various forms, and may generally be any system that can change the volume and/or density of gas in envelope 302.

In an exemplary embodiment, a variable buoyancy system may include a bladder 310 that is located inside of envelope 302. The bladder 310 could be an elastic chamber configured to hold liquid and/or gas. Alternatively, the bladder 310 need not be inside the envelope 302. For instance, the bladder 310 could be a rigid bladder that could be pressurized well beyond neutral pressure. The buoyancy of the balloon 300 may therefore be adjusted by changing the density and/or volume of the gas in bladder 310. To change the density in bladder 310, balloon 300 may be configured with systems and/or mechanisms for heating and/or cooling the gas in bladder 310. Further, to change the volume, balloon 300 may include pumps or other features for adding gas to and/or removing gas from bladder 310. Additionally or alternatively, to change the volume of bladder 310, balloon 300 may include release valves or other features that are controllable to allow gas to escape from bladder 310. Multiple bladders 310 could be implemented within the scope of this disclosure. For instance, multiple bladders could be used to improve balloon stability.

In an example embodiment, the envelope 302 could be filled with helium, hydrogen or other lighter-than-air material. The envelope 302 could thus have an associated upward buoyancy force. In such an embodiment, air in the bladder 310 could be considered a ballast tank that may have an associated downward ballast force. In another example embodiment, the amount of air in the bladder 310 could be changed by pumping air (e.g., with an air compressor) into and out of the bladder 310. By adjusting the amount of air in the bladder 310, the ballast force may be controlled. In some embodiments, the ballast force may be used, in part, to counteract the buoyancy force and/or to provide altitude stability.

In other embodiments, the envelope 302 could be substantially rigid and include an enclosed volume. Air could be evacuated from envelope 302 while the enclosed volume is substantially maintained. In other words, at least a partial vacuum could be created and maintained within the enclosed volume. Thus, the envelope 302 and the enclosed volume could become lighter than air and provide a buoyancy force. In yet other embodiments, air or another material could be controllably introduced into the partial vacuum of the enclosed volume in an effort to adjust the overall buoyancy force and/or to provide altitude control.

In another embodiment, a portion of the envelope 302 could be a first color (e.g., black) and/or a first material from the rest of envelope 302, which may have a second color (e.g., white) and/or a second material. For instance, the first color and/or first material could be configured to absorb a relatively larger amount of solar energy than the second color and/or second material. Thus, rotating the balloon such that the first material is facing the sun may act to heat the envelope 302 as well as the gas inside the envelope 302. In this way, the buoyancy force of the envelope 302 may increase. By rotating the balloon such that the second material is facing the sun, the temperature of gas inside the envelope 302 may decrease. Accordingly, the buoyancy force may decrease. In this manner, the buoyancy force of the balloon could be adjusted by changing the temperature/volume of gas inside the envelope 302 using solar energy. In such embodiments, it is possible that a bladder 310 may not be a necessary element of balloon 300. Thus, various contemplated embodiments, altitude control of balloon 300 could be achieved, at least in part, by adjusting the rotation of the balloon with respect to the sun.

Further, the balloon 300 may include a navigation system (not shown). The navigation system may implement station-keeping functions to maintain position within and/or move to a position in accordance with a desired topology. In particular, the navigation system may use altitudinal wind data to determine altitudinal adjustments that result in the wind carrying the balloon in a desired direction and/or to a desired location. The altitude-control system may then make adjustments to the density of the balloon chamber in order to effectuate the determined altitudinal adjustments and cause the balloon to move laterally to the desired direction and/or to the desired location.

Alternatively, the altitudinal adjustments may be computed by a ground-based control system and communicated to the high-altitude balloon. As another alternative, the altitudinal adjustments may be computed by a ground-based or satellite-based control system and communicated to the high-altitude balloon. Furthermore, in some embodiments, specific balloons in a heterogeneous balloon network may be configured to compute altitudinal adjustments for other balloons and transmit the adjustment commands to those other balloons.

As shown, the balloon 300 also includes a cut-down system 308. The cut-down system 308 may be activated to separate the payload 306 from the rest of balloon 300. This functionality may be utilized anytime the payload needs to be accessed on the ground, such as when it is time to remove balloon 300 from a balloon network, when maintenance is due on systems within payload 306, and/or when power supply 326 needs to be recharged or replaced.

In an exemplary embodiment, the cut-down system 308 may include a connector, such as a balloon cord, connecting the payload 306 to the envelope 302 and a means for severing the connector (e.g., a shearing mechanism or an explosive bolt). In an example embodiment, the balloon cord, which may be nylon, is wrapped with a nichrome wire. A current could be passed through the nichrome wire to heat it and melt the cord, cutting the payload 306 away from the envelope 302. Other types of cut-down systems and/or variations on the illustrated cut-down system 308 are possible as well.

In an alternative arrangement, a balloon may not include a cut-down system. In such an arrangement, the navigation system may be operable to navigate the balloon to a landing location, in the event the balloon needs to be removed from the network and/or accessed on the ground. Further, it is possible that a balloon may be self-sustaining, such that it theoretically does not need to be accessed on the ground. In yet other embodiments, balloons may be serviced in-flight by specific service balloons or another type of service aerostat or service aircraft.

As described, movement and locations of balloons can vary since winds in the stratosphere may affect the locations of the balloons in a differential manner. A balloon in an example network may be configured to change its horizontal position by adjusting its vertical position (i.e., altitude). For example, by adjusting its altitude, a balloon may be able to find winds that will carry the balloon horizontally (e.g., latitudinally and/or longitudinally) to a desired horizontal location. Wind speed and/or direction may vary with altitude, and since current wind velocities as well as weather forecasts are available, in principle, a balloon may be directed to a location by identifying an altitude at which a wind direction takes a balloon along a desired trajectory. However, a balloon without other forms of propulsion may be constrained to follow the wind and there may not be a single altitude with winds taking the balloon along the desired trajectory. In addition, to control a fleet of balloons, movement of the balloons should occur from one location above the surface of the Earth to another in a predictable manner.

In some examples, determining a fleetplan for a fleet of balloons may require staging balloons of the fleet into places ahead of time such that the balloons will be able to arrive at a landmark on time. For instance, a balloon may need to follow a trajectory that does not contribute usefully to goals during a first phase and a second phase such that the balloon can reach a desired landmark at the end of a third phase. This kind of staging may be useful when goal landmarks are spread non-uniformly throughout a fleet's coverage area. For example, there may be large regions (e.g., relative to a balloon's maximum range during a phase) requiring few or no balloons, but which may need to be traversed in order to satisfy a goal number of balloons for other regions. Such situations arise naturally, for example, when goal distributions are proportional to population density: there are a limited number of people in the oceans, few people on many parts of land, and many people in major cities.

In a situation in which goal distributions recur on a regular time frame and travel options available to balloons of the fleet remain relatively stable over the course of many repetitions of the time frame, it may be convenient to identify a cyclical pattern of balloon trajectories. For instance, the cyclical pattern may be on the same periodicity as the time frame. Entering such a cyclical pattern may allow the fleet of balloons to meet the coverage requirements with little or no re-planning of trajectories required. For instance, after the balloons have begun to execute a pattern of trajectories, the balloons may continue to re-execute the pattern over multiple iterations of the time frame.

As an example, a cyclical pattern of trajectories might begin with a given geographic distribution of balloons at a beginning of the time frame. Over the course of the time frame, the distribution of the balloons among the region of interest may vary as individual balloons (or groups of balloons) move to various locations throughout the region of interest to satisfy coverage requirements for the locations. For instance, the cyclical pattern may indicate various locations that each balloon of the fleet of balloons should travel to during various phases of the time frame. Additionally, executing the cyclical pattern for the duration of one time frame may cause a distribution of balloons among the region of interest at the end of the time frame to be the same as the distribution that occurred at the beginning of the time frame. From the positions of the balloons at the end of the time frame, the balloons may re-execute the cyclical pattern during the next recurrence of the time frame.

Example systems and methods for finding such a cyclical pattern of trajectories are further described below with reference to FIGS. 4-9. The examples are not meant to be limiting, and other examples are also possible.

In the mathematical area of Markov Chains, there is a notion of an invariant distribution. That is, if X is a vector representing a distribution over some space, and M is a square transition matrix, then X is a stationary distribution if M*X=X (i.e., if applying the transition matrix M to the distribution X results in the same distribution X).

In analogy to the notion of an invariant distribution, a pattern of trajectories that, when applied to an initial distribution of balloons, yields the same distribution is desired. In an example in which a region of interest is divided into a plurality of landmarks, the distribution may be defined as a distribution of balloons of the fleet among the plurality of landmarks at the beginning of a time period. The initial distribution may be represented by a distribution vector X whose elements correspond to a number of balloons at each landmark. Additionally, a transition matrix M may be defined. The transition matrix M may encode paths that balloons at each landmark should follow during the time period. Given the transition matrix M and the initial distribution X, M and X form a cyclical pattern if M*X=X.

In some instances, the time period may be divided into a plurality of phases. At each phase, a coverage requirement may be specified. For instance, the coverage requirement may indicate a goal or minimum number of balloons to be located at each landmark. Accordingly, the transition matrix M may comprise a series of transition matrixes. In an example of a period of time that is divided into three phases, the transition matrix M may be represented as M=M1*M2*M3, and goals may be defined for the end of phase 1, the end of phase 2, and the end of phase 3. Each of M1, M2, and M3 may encode information regarding paths that balloons at each landmark should follow during phases 1, 2, and 3 respectively. The goals are then satisfied by the transition matrix M if M1*X satisfies the goals for the end of phase 1, M1*M2*X satisfies the goals for the end of phase 2, and M1*M2*M3*X satisfies the goals for the end of phase 3.

In other examples, arbitrary functions may be considered rather than linear transformations. For example, there may be a set of functions f1, f2, . . . fn where f1(f2( . . . fn(X) . . . ))=X and X is a fixed point of f=f1∘f2∘ . . . ∘fn.

In one case, a system may be configured to determine a cyclical pattern of trajectories for a fleet of balloons. To determine the cyclical pattern, the system may receive as input a sequence of coverage requirements for the region for a planning time period. As an example, the sequence of coverage requirements for the time period may specify a goal number of balloons for each of a plurality of landmarks within the region at various times T during the time period. The system may also be configured to divide the time period into phases based on distinct values of T in the sequence of coverage requirements: a first phase may be defined from a starting time of the time period to an earliest T; a second phase may be defined between the end of the first phase and a second earliest T, etc.

Based on the received information, the system may be configured to determine possible routes that a balloon located at each of the plurality of landmarks could follow. To determine the possible routes, the system may establish possible trajectories for balloons within each phase. As one example, for each landmark at the start of a phase and for each landmark at the end of the phase, the system may determine how close to the end-of-phase landmark that a balloon starting from the start-of-phase landmark could get by traveling during the phase. If a balloon could reach within a minimum distance of the end-of-phase landmark, the route between the start-of-phase landmark and the end-of-phase landmark may be identified as a possible route.

FIG. 4 illustrates example possible routes for a balloon that is traveling from a landmark A and a balloon that is traveling from a landmark B. As shown in FIG. 4, a region 400 has been divided into a plurality of subregions, and the landmarks A-L have been established at the center of each subregion. Note that in some examples coverage requirements may specify a goal number of balloons to be located at one or more locations within the region 400, and the goal number of balloons may be added to the nearest landmark to determine the goal number of balloons for each landmark. For example, if an individual coverage requirement indicates that five balloons are desired at location Loc1 and seven balloons are desired at location Loc2, the desired number of balloons for landmark A may be determined to be twelve.

Although the landmarks A-L are distributed uniformly throughout the region 400, the example is not meant to be limiting. In other instances, landmarks may be non-uniformly distributed within the region 400. For example, if a region covers the entire Earth, one or more oceans or countries may not include any landmarks.

The example possible routes may be determined based on estimated or predicted wind conditions at one or more altitudes. In the example of FIG. 4, the wind conditions are assumed to generally include winds flowing from left-to-right with additional variation in the vertical direction from time T=0 to T=1. For landmark A, routes that a balloon starting at landmark A could follow to reach landmarks D and E are shown. For landmark B, routes that a balloon starting at landmark B could follow to reach landmarks E and F are shown.

In one example, a backward planner may be used to determine a measure of how close to a target location that a balloon could reach if the balloon was starting at another location within a region. For example, given a target time and target location as well as an initial time, the backward planner may be configured to determine, for a grid of starting locations within a region, a measure of how close to the target location a balloon could get, if the balloon was flying from initial time to target time.

The backward planner may consider a problem of minimizing a cost function associated with a balloon path. As an example, the cost function may be a measure of how close a balloon gets to a target location by following a path. FIG. 5 illustrates an example cost value map where location A is a starting location of a balloon, location B is a desired final location, and example cost values are assigned to cells surrounding location B. For a time period from T=0 to T=N, the time period can be discretized in order to consider a situation of the balloon at times T=0, 1, 2, . . . , N. The region can also be discretized by dividing the region into a finite number of cells. For instance, FIG. 5 illustrates a region that has been divided into a number of cells (e.g., a 10×7 grid of cells). Although the region is represented as a rectangular grid, the example is not meant to be limiting.

At time T=N (e.g., a final time of a planning phase), there is no planning to do since the balloon will be at a final location at this time, and a cost value can be assigned to each cell based on a final location of the balloon. For time T=N, cost values may be systematically assigned such that a cell in which the desired location resides has a low cost and cells further away may be assigned a higher cost value (e.g., the farther away from the desired location, the higher the cost value). Thus, as shown, a cell in which the desired location B resides can be assigned a cost value of zero, and cost values for surrounding cells can be assigned higher cost values based on a distance away from the desired location cell. Cost values for all cells can be populated in this manner by increasing the cost value for a given cell based on the distance from the desired location.

Following, cost value maps of all cells may be generated for each time step T=0, 1, 2, . . . , N−1. To construct the cost value maps, a map may be generated for time T=N−1, and maps for previous times may be generated working backwards, such as next generating a map for time T=N−2, followed by T=N−3, and so on.

After generating the map at time T=N, to generate a map for a next previous time step, possible altitudes and corresponding possible locations that can be reached over the time interval from T=N−1 to T=N for a balloon present in every cell at time T=N−1 can be estimated. For each cell and for one or more altitudes, an estimation of where the balloon will arrive by starting at that cell and flying at that altitude during the time interval can be determined. For example, weather predictions at time T=N−1 may indicate that, for a given cell, different wind conditions exist for different altitudes. FIG. 6 illustrates an area divided into cells (e.g., a 10 by 7 grid of cells), and for a given cell labeled X, example wind vectors A₁-A₅ that are determined based on wind conditions at five different altitude levels.

In some examples, wind vectors associated with different altitudes may be the same for each cell. In other examples, wind vectors associated with different altitudes may vary based on the location of the cell. For each cell, an estimation of where a balloon would travel to (e.g., destination cell) at the end of the time period if the balloon started at the cell and moved with a given wind vector is determined. To do so, a direction and magnitude (e.g., speed) of the estimated wind vector can be used to estimate a trajectory and distance that the balloon travels, and to determine estimated destination cells (e.g., A_(1(EST))-A_(5(EST))). FIG. 6 illustrates estimated destination cells for a balloon starting at cell X, and moving with one of the five wind vectors A₁-A₅. Example simulations can be performed to simulate movement of the balloons due to the estimated wind directions and speed, for example.

In some examples, further estimations may be made by a balloon traveling at a first altitude for a portion of a time interval and then changing to a second altitude for a remainder of the time interval. It could be possible that by traveling at any given number of combinations of altitudes, the winds may be able to carry the balloon to a desired location over the time interval.

As shown in the example in FIG. 6, wind vector A₃ results in the balloon reaching a closest proximity to the desired final location B at time T=N. Cost values for the balloon traveling along the wind vectors A₁-A₅ may be determined based on the stored cost values at T=N for the destination cells A_(1(EST))-A_(5(EST)). For example, the wind vector A₃ may be assigned a value of zero, and cost values for a remainder of the wind vectors may be assigned higher cost values for causing the balloon to travel to a location further away from the desired destination (e.g., such as a A₄ having cost of one, A₅ having cost of four, A₂ having cost of two, and A₁ having cost of three).

An altitude that results in a smallest cost value can be determined, and the altitude and cost value can be stored for the cell X for time T=N−1. Thus, in the example described, for cell X at time T=N−1, a balloon in cell X that has a desired destination location B at time T=N can be instructed to travel at altitude A₃. The same determinations may be performed for each cell of the area.

The process above may be repeated to determine cost value maps for time interval T=N−2 based on predicted wind conditions for T=N−2 to T=N−1 and the stored cost values for T=N−1. Further, the process may be repeated for time intervals T=N−3, T=N−4, and so on until T=0. In some examples, each cell of a given map has estimates of directions that are based on estimates of directions as determined for a subsequent time interval. This enables planning for a balloon to take a given path at a first time interval so that the balloon will be at a location needed during the next time interval to take appropriate action, and so on.

Referring back to the example illustrated by FIG. 4, the backward planner may be able to determine, for starting landmark A, a minimum distance from each of landmarks A-L that a balloon could reach if the balloon was flying from T=0 to T=1. For example, a cost value for each of landmarks A-L may be proportional to a distance such that a given cost value can be converted to a given three-dimensional distance. The backward planner may also be able to determine, for landmark A, which altitude a balloon should fly at at T=0 in order to get as close as possible to a given landmark by T=1. Similarly, the backward planner may be able to determine for each of the other landmarks B-L, a minimum distance from each of the landmarks that a balloon could reach if the balloon was flying from T=0 to T=1.

The backward planner is provided as one example mechanism for establishing possible routes between landmarks. However, other mechanisms that can determine, for a particular staring location/time and an ending location/time, how close to the ending location a balloon can reach in the time period allotted, based on predicted wind velocities at one or more altitudes may also be utilized.

In some examples, filtering heuristics may also be applied to further refine the possible routes between landmarks during a phase(s). FIGS. 7A-7B illustrate examples of determining a set of starting landmarks from which a balloon could reach a landmark E.

In one example, thresholding may be used to impose a notion of how close to a target landmark that a balloon needs to be able to get in order to be considered to be capable of reaching the landmark. For example, a set of paths may be selected as feasible routes based on a comparison between the minimum distances associated with paths from landmarks A-D and F and a threshold distance. Based on the trajectories shown in FIG. 7A, balloons traveling from landmarks A, B, and F could get within a threshold distance 702 of the landmark E. Therefore, the paths from landmarks A, B, and F may be retained as possible paths that a balloon could follow to reach landmark E, while the landmarks D and C may be ignored.

In another example, a set of paths may be selected as feasible routes based on a confidence of reaching a target landmark from a starting landmark and/or a cost value associated with flying to the target landmark from a starting landmark. As shown in FIG. 7B, each path from starting landmarks A-D and F includes an associated probability, as indicated by a percentage on a scale of 1 to 100. The probability may be determined based on the variability of one or more wind conditions (e.g., wind direction and/or speed). In one example, based on the associated probabilities, the paths from landmarks A, B and C may be selected as a set of possible paths that a balloon could follow to reach landmark E because their associated probabilities are greater than a confidence threshold (e.g., 85%).

Additionally, as shown in FIG. 7B, each path from starting landmarks A-D and F includes an associated cost, as indicated by a dollar amount. In one example, the cost may be associated with a cost in power that is necessary to adjust the altitude of a balloon to reach one or more altitudes during the path. Accordingly, a set of paths may be selected as feasible routes based on a comparison between the cost values associated with each starting landmark and a cost threshold. For instance, the path starting at landmark B may be selected as the only possible route because the path associated with landmark B has the only cost that is below 3$.

In still another example, a set of possible paths that a balloon could follow to reach a landmark may be selected from among the possible paths to reach the landmark by retaining the top N number of paths from respective landmarks (e.g., sorted to prefer minimum distances from within the target landmark that a balloon could get). It is contemplated that one or any combination of the described filtering heuristics may be used to determine a set of possible routes to and/or from a landmark and another landmark.

FIG. 8 illustrates an example graph 800 of possible routes between a plurality of landmarks in accordance with an example embodiment. Continuing with the example from FIG. 4, landmarks A-F are represented. Each straight edge between two landmarks represents a route or path that a balloon could follow to get from a landmark at the beginning of a phase to a landmark at the end of the phase. For instance, a balloon at landmark A at time T=0 may be able to reach landmark D or E by time T=1. Additionally, a balloon at landmark A at time T=1 may be able to get to landmark D or E by time T=2. Note that although the edges for phase 1 are the same as edges for phase 2 in FIG. 8, in other examples, edges may vary among phases.

Once the graph 800 is constructed, an optimization method may be used to determine an initial distribution of the balloons among the plurality of landmarks and a corresponding cyclical pattern of trajectories. The cyclical pattern of trajectories may indicate how many balloons flow across each connection in the graph (i.e., from each starting landmark to each ending landmark) during each phase.

The optimization method may be configured to obey one or more consistency constraints. For example, a number of balloons leaving a landmark in phase P may be set to be the same as the number of balloons that arrived at that landmark at the end of phase P−1. As another example, a number of balloons at any landmark or traveling along any edge cannot be negative. Additionally, a consistency constraint that asserts that the distribution of balloons at the end of the last phase be equal to the distribution of balloons at the beginning of the first phase may be included.

If the sequence of coverage requirements is treated as strict requirements, the problem of determining trajectories for the fleet may be considered a constraint satisfaction problem, where optimization means solving the constraint graph subject to the constraint that each goal is satisfied and the distribution of balloons at the beginning of the first phase equals the distribution of balloons at the end of the last phase. If it is allowable to sometimes leave some goals unsatisfied, the problem may be considered an optimization problem: find the configuration that, for example, minimizes the number of unsatisfied goals, or some other measure of the goals' dissatisfaction. Also, in instances where the consistency constraint that asserts that the distribution of balloons at the end of the last phase be equal to the distribution of balloons at the beginning of the first phase is too strict, the optimization problem may solve for the configuration that minimizes the discrepancy between the distribution of balloons at the end of the last phase and the distribution of balloons at the beginning of the first phase.

Such a problem can be solved using a variety of methods, including as a linear program, as a minimum-cost-circulation problem, via gradient descent, via stochastic optimization, or using other existing or future developed methods.

For instance, the problem may be solved as a linear program. In one case, the goal for the linear program is to take a time-varying description of how many balloons are desired at each landmark (“the goal distribution”) and a summary of which goal landmarks are reachable from which other landmarks at a given time, along with a measure of how accurately a balloon can be expected to reach a goal landmark, and determine a fleet-wide policy that maximizes a likelihood of satisfying the goal distribution. Note that the goal distribution is not concerned with determining where any particular balloon goes, but rather that the correct numbers of balloons are in the correct areas at each phase and at the beginning and end of the planning period.

To solve the problem as a linear program, constants, variables, and constraints may be defined.

The constants may include:

-   -   requiredAtGoal[phase, goal]=the goal distribution; how many         balloons desired at each goal at the end of each phase     -   score[phase, origin, goal]=accuracy estimate for the path from         origin to goal during phase.

The variables may include:

-   -   startingAtOrigin[origin]=the initial distribution; the number of         balloons at each location at the beginning of a planning period     -   A[phase, origin, goal]=how many vehicles move from origin to         goal during phase; defined only if it is possible to reach the         goal from the origin given the wind at that phase     -   atGoal[phase, goal]=the number of balloons at goal at the end of         phase     -   deficit[phase, goal]=the number of balloons by which the goal         distribution was under-satisfied at goal at the of phase, that         is: max(0, requiredAtGoal−atGoal).

The constraints may include:

-   -   Non-negative flow         -   ∀origin, ∀goal, ∀phase: 0≦A[phase, origin, goal]     -   Conservation on the origin side         -   ∀origin: Σ_(goal)∀[0, origin, goal]=startingAtOrigin[origin]         -   ∀origin, ∀phase>0: Σ_(goal)A[phase, origin, goal]=             -   atGoal[phase−1, origin]     -   Conservation on the goal side         -   ∀goal, ∀phase>0: atGoal[phase, goal]=Σ_(origin)A[phase,             origin, goal]     -   Non-negative deficits         -   ∀goal, ∀phase: 0≦deficit[phase, goal]         -   ∀goal, ∀phase: requiredAtGoal[phase, goal]≦atGoal[phase,             goal]+deficit[phase, goal]     -   Cyclical distribution         -   ∀origin: startingAtOrigin[origin]=atGoal[finalPhase, origin]

Based on the constants, variables, and constraints defined above, a linear program solver may be used to minimize the example objective function shown below: α·c _(error)(Σ_(phase)Σ_(goal)deficit[phase,goal])+(1−α)(Σ_(phase)Σ_(origin)Σ_(goal)score[phase,origin,goal]A[phase,origin,goal])

The objective function penalizes fleet plans that put less than the minimum number of balloons at some landmark; for each balloon fewer than desired, the penalty goes up. The optimal plan, therefore, is the plan that minimizes the objective function. An additional term is also included that minimizes a measure of how close to a target landmark that each balloon can reach. For instance, the additional term seeks to minimize the sum of the score constants for each path traversed. The additional term causes the linear program solver to prefer accurate trajectories and penalize trajectories that do not reliably deliver the balloon directly to a goal landmark.

In the example objective function, c_(error) is a weight parameter and α may be another parameter that is used to adjust the relative importance of minimizing the number of missed goals versus preferring accurate trajectories. For instance, increasing α−c_(error) may cause the linear program solver to prefer fleet trajectories that satisfy a goal distribution better, at the cost of being willing to use less accurate flight paths. Also, increasing (1−α) may cause the linear program solver to prefer fleet plans that use accurate/reliable flight paths, at the cost of being willing to leave more of a goal distribution unsatisfied.

In another example, the cyclical distribution constraint may be omitted and the objective function below may include a third term: Σ_(origin)|startingAtOrigin[origin]−atGoal[finalPhase,origin]| The third term represents the discrepancy between the distribution of balloons of the fleet of balloons at the beginning of the first phase and the distribution of balloons of the fleet of balloons at the end of the last phase. A third weighting parameter may also be added to control the relative importance of each term in the objective function. Additionally, in some instances the third term may be weighted such that for some landmarks, having fewer vehicles at the end of the last phase than at the beginning of the first phase is less costly than for others. This may allow the third term to, for example, bias the system towards deficits in regions where new balloons can be launched relatively easily.

In further examples, the score constants may be a measure of a confidence associated with whether a balloon traveling from origin could reach goal during phase or multiple phases. For instance, the measure of confidence may be a probability that is determined based on the variability of one or more wind conditions (e.g., wind direction and/or speed). In addition, the configuration of the linear program could further be modified such that the number of balloons atGoal is an expected number of balloons that is determined based on the probabilities of each balloon reaching the goal landmark. For example, if a balloon has a 75% chance of reaching a goal landmark, the balloons contribution to atGoal may be 0.75 balloons instead of 1 balloon.

In another variant, the score constants may be replaced or augmented with a measure of cost associated with a path from origin to goal during phase or phases. For instance, the cost may be a cost-in-dollars, cost-in-power, or other cost measure. The linear program solver may then be configured to minimize total cost in the determined trajectories.

In some examples, the system may be configured to determine the distribution of balloons of the fleet of balloons for the beginning of the period of time (i.e., the initial distribution) that allows the cyclical pattern of trajectories to be possible. In such examples, a sub-problem may be solved to move the fleet of balloons from its current distribution to the determined initial distribution. The sub-problem may be similar to the problem described above, modified such that the cyclical distribution constraint is removed, the current distribution is used for the startingAtOrigin constants, and the initial distribution for the cyclical pattern of trajectories is used for the requiredAtGoal constant. The sub-problem may be solved to determine trajectories for each balloon to transition the balloons from their current distribution at a current time to the initial distribution at the beginning of the period of time when the cyclical pattern of trajectories begins.

In other examples, the system may be configured to determine the cyclical pattern of trajectories, and its associated initial distribution, while taking into account the current distribution of the fleet of balloons. FIG. 9 illustrates an example period of time 900 that is divided into two sets of phases: phases within a transition time period 902 and phases within a cyclical pattern time period 904. The phases within the transition time period 902 include phases 1, 2, . . . N. The phases within the cyclical pattern time period 904 include phases N+1, N+2, . . . M.

In one instance, in order to solve for the cyclical pattern of trajectories, the cyclical distribution constraint may specify that the distribution of balloons at the beginning of phase N+1 be equal (or approximately equal) to the distribution of balloons at the end of phase M. Additionally, the system may determine trajectories for the balloons within the transition time period 902 that move the balloons from a current distribution at the beginning of phase 1 to an initial distribution at the end of phase N, from which the balloons may enter the cyclical pattern of trajectories.

Using the approach described with respect to FIG. 9, the system may be able to determine a plan for arranging the balloons into a distribution from which the balloons may enter the cyclical pattern of trajectories. Additionally, such an approach applies an additional constraint on the determination of the cyclical pattern of trajectories that enables the system to determine an initial distribution for the cyclical pattern of trajectories that is actually achievable by the fleet of balloons within a fixed amount of time, given where the balloons are starting from at a current time.

In a further example, multiple cyclical patterns may be solved for and chained together. For example, there may be a first set of coverage requirements for weekdays and a second set of coverage requirements for weekends. The system may be configured to solve for two cyclical patterns of trajectories that can be chained together such that balloons may follow a first cyclical pattern during every weekday day (e.g., Monday, Tuesday, Wednesday, Thursday, and Friday), then follow a different cyclical pattern over the weekend before returning to the first cyclical pattern for the next week. In one instance, the beginning distribution of vehicles in the fleet of vehicles for the weekend cyclical pattern may be the same distribution as the ending distribution of the fleet of vehicles for the weekday cyclical pattern. Other configurations are also possible.

FIG. 10 is an example block diagram of a method 1000 to determine a cyclical pattern of trajectories for a fleet of vehicles, in accordance with at least some embodiments described herein. Method 1000 shown in FIG. 10 presents an embodiment of a method that could be used with the balloon networks 100 and 204, for example, and may be performed by a device, a server, a control station, a balloon, or a combination of any components of the balloon networks 100 and 204. Method 1000 may include one or more operations, functions, or actions as illustrated by one or more of blocks 1002-1006. Although the blocks are illustrated in a sequential order, these blocks may in some instances be performed in parallel, and/or in a different order than those described herein. Also, the various blocks may be combined into fewer blocks, divided into additional blocks, and/or removed based upon the desired implementation.

In addition, for the method 1000 and other processes and methods disclosed herein, the flowchart shows functionality and operation of one possible implementation of present embodiments. In this regard, each block may represent a module, a segment, or a portion of program code, which includes one or more instructions executable by a processor for implementing specific logical functions or steps in the process. The program code may be stored on any type of computer readable medium, for example, such as a storage device including a disk or hard drive. The computer readable medium may include a non-transitory computer readable medium, for example, such as computer-readable media that stores data for short periods of time like register memory, processor cache and Random Access Memory (RAM). The computer readable medium may also include non-transitory media, such as secondary or persistent long term storage, like read only memory (ROM), optical or magnetic disks, compact-disc read only memory (CD-ROM), for example. The computer readable media may also be any other volatile or non-volatile storage systems. The computer readable medium may be considered a computer readable storage medium, a tangible storage device, or other article of manufacture, for example.

In addition, for the method 1000 and other processes and methods disclosed herein, each block in FIG. 10 may represent circuitry that is wired to perform the specific logical functions in the process.

At block 1002, the method 1000 includes receiving a sequence of coverage requirements for a region and an associated period of time. The region may be characterized by a plurality of landmarks and the period of time may be divided into a plurality of phases. An individual coverage requirement may then specify a desired number of vehicles for one or more of the plurality of landmarks at an end of a given phase. Note that the number of vehicles may be a minimum number of vehicles that is desired for each of the plurality of landmarks, and in some instances, it may be acceptable to have more than the minimum number of vehicles at each landmark. Additionally, in some instances, the minimum number of vehicles may be zero for one or more landmarks and/or one or more phases. In one example, each coverage requirement may be specified in the form of a goal distribution. For instance, the goal distribution may be determined based on population densities for different parts of the region or short-term coverage demands for one or more locations within the range.

At block 1004, the method 1000 includes, determining, for each of one or more phases, possible routes that a vehicle located at one or more respective landmarks at a beginning of the phase could follow to reach one or more additional landmarks of the plurality of landmarks by an end of the phase. In an example in which vehicles of a fleet of vehicles include a balloon within a data network that is operable to provide data communication via optical or RF links, a backward planner may be used to determine, for each respective landmark of a set of landmarks with a given phase, a minimum distance from each other landmark that a balloon could get, if the balloon was following one or more predicted winds during the phase. If a minimum distance associated with a particular landmark is less than a threshold distance, a determination may be made that the balloon could reach the particular landmark, and the route to the particular landmark may be identified as a possible route.

In one example, the one or more predicted winds may be determined based on wind data received from one or more balloons of the fleet. In other examples, the wind data may be determined based on wind data received from the National Oceanic and Atmospheric Administration (NOAA).

At block 1006, the method 1000 includes, based on the sequence of coverage requirements and the determined possible routes, determining a cyclical pattern of trajectories for vehicles of a fleet of vehicles that minimizes a difference between a distribution of vehicles in the fleet at a beginning of the period of time and a distribution of vehicles in the fleet at an end of the period of time. The cyclical pattern of trajectories may indicate which route of the determined possible routes that a given vehicle starting at an individual landmark of the plurality of landmarks should follow during a given respective phase.

In one example, based on the sequence of coverage requirements and the determined possible routes, an initial distribution for the vehicles of the fleet of vehicles may be determined. Further, by arranging the fleet of vehicles according to the initial distribution at the beginning of the period of time and executing the cyclical pattern of trajectories during the period of time, the fleet of vehicles may again be arranged in a similar (or same) distribution as the initial distribution at the end of the period of time. For instance, in one scenario, the initial distribution may include two vehicles at each of the plurality of landmarks (e.g., a uniform distribution). Over the course of the period of time, the cyclical pattern of trajectories for the vehicles may cause the distribution of vehicles in the fleet to vary. Then, at an end of the period of time, the fleet of vehicles may again be arranged in a uniform distribution having two vehicles at each of the plurality of landmarks. Note that the example of a uniform distribution is not meant to be limiting. In other cases, the initial distribution may be a non-uniform distribution, and the cyclical pattern of trajectories may cause the vehicles of the fleet to be arranged in the same non-uniform distribution at the end of the period of time.

In one case, a distribution of vehicles in the fleet of vehicles may be represented by an array of cells. Each cell may correspond to a subregion of the region, and the value of each cell may be determined based on the number of vehicles located within the subregion at a given time period. Minimizing a difference between two distributions may then involve minimizing a total difference between corresponding cells of a first array of cells and a second array of cells. The first array of cells and the second array of cells may correspond to a distribution of the vehicles at the beginning of the period of time and a distribution of the vehicles at the end of the period of time respectively.

In some examples, the method 1000 may further include providing an instruction to each vehicle to travel to the determined respective landmark during each phase. Thus, a set of instructions can be provided that indicates a travel plan for each vehicle. In an example in which vehicles of the fleet of vehicles include a balloon within a data network, the travel plan may indicate specific altitudes to fly at for various locations within the region. In other examples, an instruction can be sent to the balloon to indicate to change an altitude, and the instruction may be sent when the altitude change is needed.

In some examples, the method 1000 or portions of the method 1000 may be performed by a ground-based station (e.g., the ground-based station 102 in FIG. 1) or a central system (e.g., the central control system 200 in FIG. 2), and instructions can be provided to individual vehicles. In other examples, the method 1000 or portions of the method 1000 may be performed by the vehicles themselves, or by processors or computing devices residing on the vehicle, for example. The vehicles may receive any necessary information for performing the method 1000 from a server or ground-base station or from other vehicles. In further examples, the method 1000 may be performed by a combination of the vehicles and by ground-based stations, and each may be in communication so as to perform functions of the method 1000.

It should be understood that arrangements described herein are for purposes of example only. As such, those skilled in the art will appreciate that other arrangements and other elements (e.g. machines, interfaces, functions, orders, and groupings of functions, etc.) can be used instead, and some elements may be omitted altogether according to the desired results. Further, many of the elements that are described are functional entities that may be implemented as discrete or distributed components or in conjunction with other components, in any suitable combination and location.

While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope being indicated by the following claims, along with the full scope of equivalents to which such claims are entitled. It is also to be understood that the terminology used herein is for the purpose of describing particular embodiments only, and is not intended to be limiting. 

What is claimed is:
 1. A method comprising: receiving a sequence of coverage requirements for a region and an associated period of time, wherein the region is characterized by a plurality of landmarks and the period of time is divided into a plurality of phases, and wherein individual coverage requirements of the sequence of coverage requirements are indicative of a desired number of vehicles of a fleet of vehicles for one or more of the plurality of landmarks at an end of a given phase of the plurality of phases; determining, by a processor, for each of one or more phases of the plurality of phases, possible routes that a vehicle of the fleet of vehicles located at one or more respective landmarks of the plurality of landmarks at a beginning of the phase could follow to reach one or more additional landmarks of the plurality of landmarks by an end of the phase; and based on the sequence of coverage requirements and the determined possible routes, determining, by the processor, a cyclical pattern of trajectories for vehicles of the fleet of vehicles that minimizes a difference between a distribution of vehicles in the fleet of vehicles at a beginning of the period of time and a distribution of vehicles in the fleet of vehicles at an end of the period of time.
 2. The method of claim 1, wherein vehicles of the fleet of vehicles include a balloon within a data network that is operable to provide data communication via optical or radio-frequency (RF) links.
 3. The method of claim 2, further comprising determining the possible routes based on one or more estimated winds at one or more altitudes.
 4. The method of claim 1, wherein the cyclical pattern of trajectories indicates which route of the determined possible routes for a given vehicle starting at an individual landmark of the plurality of landmarks to follow during a given respective phase.
 5. The method of claim 1, further comprising determining the cyclical pattern of trajectories by minimizing a linear objective function, wherein the linear objective function includes a deficit term that is indicative of a number of vehicles by which one or more of the coverage requirements are under-satisfied.
 6. The method of claim 1, further comprising transmitting, using one or more optical or radio-frequency (RF) links, instructions to the fleet of vehicles to cause the fleet of vehicles to follow the cyclical pattern of trajectories.
 7. The method of claim 1, wherein determining, for each of the one or more phases, the possible routes that a vehicle located at the one or more respective landmarks could follow comprises: determining, for each of the one or more phases and each of the one or more respective landmarks of the plurality of landmarks, a minimum distance from each additional landmark of the plurality of landmarks that a vehicle starting from the respective landmark could reach during the phase; and determining the possible routes for the phase and the respective landmark based on a comparison between minimum distances associated with the additional landmarks and a threshold distance.
 8. The method of claim 1, wherein determining, for each of the one or more phases, the possible routes that a vehicle located at the one or more respective landmarks could follow comprises: determining, for each of the one or more phases and each of the one or more respective landmarks of the plurality of landmarks, confidence measures that are indicative of whether a vehicle starting from the respective landmark could reach each additional landmark of the plurality of landmarks during the phase; and determining the possible routes for the phase and the respective landmark based on a comparison between confidence measures associated with the additional landmarks and a confidence threshold.
 9. The method of claim 1, wherein determining, for each of the one or more phases, the possible routes that a vehicle located at the one or more respective landmarks could follow comprises: determining, for each of the one or more phases and each of the one or more respective landmarks of the plurality of landmarks, cost values associated with a vehicle traveling to each additional landmark of the plurality of landmarks during the phase; and determining the possible routes for the phase and the respective landmark based on a comparison between cost values associated with the additional landmarks and a cost threshold.
 10. The method of claim 1, wherein determining the cyclical pattern of trajectories for vehicles of the fleet of vehicles further comprises determining an initial distribution for vehicles in the fleet of vehicles at the beginning of the period of time.
 11. The method of claim 10, further comprising: determining a current distribution of vehicles of the fleet of vehicles at a current time period prior to the period of time; and determining trajectories for vehicles of the fleet of vehicles to follow between the current time and the period of time to cause the vehicles of the fleet of vehicles to be arranged in the initial distribution at the beginning of the period of time.
 12. A non-transitory computer-readable storage medium having stored therein instructions, that when executed by a computing device, cause the computing device to perform functions comprising: receiving a sequence of coverage requirements for a region and an associated period of time, wherein the region is characterized by a plurality of landmarks and the period of time is divided into a plurality of phases, and wherein individual coverage requirements of the sequence of coverage requirements are indicative of a desired number of vehicles of a fleet of vehicles for one or more of the plurality of landmarks at an end of a given phase of the plurality of phases; determining for each of one or more phases of the plurality of phases possible routes that a vehicle of the fleet of vehicles located at one or more respective landmarks of the plurality of landmarks at a beginning of the phase could follow to reach one or more additional landmarks of the plurality of landmarks by an end of the phase; and based on the sequence of coverage requirements and the determined possible routes, determining a cyclical pattern of trajectories for vehicles of the fleet of vehicles that minimizes a difference between a distribution of vehicles in the fleet of vehicles at a beginning of the period of time and a distribution of vehicles in the fleet of vehicles at an end of the period of time.
 13. The non-transitory computer-readable storage medium of claim 12, wherein vehicles of the fleet of vehicles include a balloon within a data network that is operable to provide data communication via optical or radio-frequency (RF) links.
 14. The non-transitory computer-readable storage medium of claim 13, wherein the functions further comprise determining the possible routes based on one or more estimated winds at one or more altitudes.
 15. The non-transitory computer-readable storage medium of claim 10, wherein the cyclical pattern of trajectories indicates which route of the determined possible routes for a given vehicle starting at an individual landmark of the plurality of landmarks to follow during a given respective phase.
 16. A system, comprising: at least one processor; data storage comprising program instructions executable by the at least one processor to cause the system to perform functions comprising: receiving a sequence of coverage requirements for a region and an associated period of time, wherein the region is characterized by a plurality of landmarks and the period of time is divided into a plurality of phases, and wherein individual coverage requirements of the sequence of coverage requirements are indicative of a desired number of vehicles of a fleet of vehicles for one or more of the plurality of landmarks at an end of a given phase of the plurality of phases; determining for each of one or more phases of the plurality of phases possible routes that a vehicle of the fleet of vehicles located at one or more respective landmarks of the plurality of landmarks at a beginning of the phase could follow to reach one or more additional landmark of the plurality of landmarks by an end of the phase; and based on the sequence of coverage requirements and the determined possible routes, determining a cyclical pattern of trajectories for vehicles of the fleet of vehicles that minimizes a difference between a distribution of vehicles in the fleet of vehicles at a beginning of the period of time and a distribution of vehicles in the fleet of vehicles at an end of the period of time.
 17. The system of claim 16, wherein vehicles of the fleet of vehicles include a balloon within a data network that is operable to provide data communication via optical or radio-frequency (RF) links.
 18. The system of claim 17, wherein the functions further comprise determining the possible routes based on one or more estimated winds at one or more altitudes.
 19. The system of claim 16, wherein the cyclical pattern of trajectories indicates which route of the determined possible routes for a given vehicle starting at an individual landmark of the plurality of landmarks to follow during a given respective phase.
 20. The system of claim 16, wherein the functions further comprise instructing the fleet of vehicles to follow the cyclical pattern of trajectories. 